package com.woniu.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu.commons.exception.YogaException;
import com.woniu.model.dto.AdminDto;
import com.woniu.model.entity.YAdmin;
import com.woniu.model.entity.YCoach;
import com.woniu.model.entity.YVenue;
import com.woniu.model.param.*;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 胡歌
 * @since 2024年05月22日
 */
public interface YAdminService extends IService<YAdmin> {
    /**
     *
     * @param mobile 注册手机号发送验证码
     */
    void sendRegisterCode(String mobile);
    /**
     *
     * @param param 验证码注册 注册管理员的信息
     * @throws Exception
     */
    void CodeAdminRegister(CodeAdminRegisterParam param)throws Exception;
    /**
     *
     * @param mobile  手机号登录发送验证码
     * @throws Exception
     */
    void LoginCodePhone(String mobile)throws Exception;
    /**
     *
     * @param param  手机号验证码登录
     * @return 返回登录管理员整个对象
     * @throws Exception
     */
    AdminDto codeLogin(AdminCodeLoginParam param)throws Exception;
    /**
     *
     * @param param 管理员账号密码登录
     * @return  返回登录管理员整个对象
     * @throws Exception
     */
    AdminDto adminLogin(adminLoginParam param)throws Exception;
    /**
     *
     * @param adminId  超级管理员禁用管理员，传入需要被禁用的ID
     */
    void disable(Integer adminId);
    /**
     *
     * @param adminId 超级管理员启用管理员，传入需要被启用的ID
     */
    void enable(Integer adminId);

    /*
分页查询管理员数量
*/
    Page<YAdmin> loadPageAdmin(loadPageAllAdminParam param) throws YogaException;

    void checkPhone(Long phone);
}
